package com.gradumate.shared;

/**
 * Klasse waar alle reguliere expressies die vaker gebruikt kunnen worden staan. <br>
 * Elke klasse kan zo makkelijk de regex opvragen vanuit deze klasse.
 * @author IJsbrand
 *
 */
public class Toolbox {
	
	/**
	 * Regex voor een naam<br>
	 * @param s De String die meegegeven is aan de methode
	 * @return boolean:<br>
	 * - true wanneer aan de regex is voldaan.<br>
	 * - false wanneer niet aan de regex is voldaan.
	 */
	public boolean NaamRegex(String s) {
		return s.matches("^[a-zA-Z ,'-]+$");
	}
	
	/**
	 * Regex voor een huisnummer<br>
	 * @param s De String die meegegeven is aan de methode
	 * @return boolean:<br>
	 * - true wanneer aan de regex is voldaan.<br>
	 * - false wanneer niet aan de regex is voldaan.
	 */
	public boolean HuisnummerRegex(String s){
		return s.matches("^([0-9]+|[0-9]+[a-zA-Z -]+)$");
	}
	
	/**
	 * Regex voor een postcode<br>
	 * @param s De String die meegegeven is aan de methode
	 * @return boolean:<br>
	 * - true wanneer aan de regex is voldaan.<br>
	 * - false wanneer niet aan de regex is voldaan.
	 */
	public boolean PostcodeRegex(String s){
		return s.matches("^([0-9]{4}[' '][a-zA-Z]{2}|[0-9]{4}[a-zA-Z]{2})$");
	}
	
	/**
	 * Regex voor een Url<br>
	 * @param s De String die meegegeven is aan de methode
	 * @return boolean:<br>
	 * - true wanneer aan de regex is voldaan.<br>
	 * - false wanneer niet aan de regex is voldaan.
	 */
	public boolean UrlRegex(String s){
		return s.matches("^[a-zA-Z ,-_]+.[a-zA-Z]+$");
	}
}
